9 research outputs found

    Copy-paste Tracking: Fixing Spreadsheets Without Breaking Them

    Get PDF
    Spreadsheets are the most popular live programming environments, but they are also notoriously fault-prone. One reason for this is that users actively rely on copy-paste to make up for the lack of abstraction mechanisms. Adding abstraction however, introduces indirection and thus cognitive distance. In this paper we propose an alternative: copy-paste tracking. Tracking copies that spreadsheet users make, allows them to directly edit copy-pasted formulas, but instead of changing only a single instance, the changes will be propagated to all formulas copied from the same source. As a result, spreadsheet users will enjoy the benefits of abstraction without its drawbacks

    Gradual Grammars: Syntax in Levels and Locales

    Get PDF
    Programming language implementations are often one-sizefits-all. Irrespective of the ethnographic background or proficiency of their users, they offer a single, canonical syntax for all language users. Whereas professional software developers might be willing to learn a programming language all in one go, this might be a significant barrier for non-technical users, such as children who learn to program, or domain experts using domain-specific languages (DSLs). Parser tools, however, do not offer sufficient support for graduality or internationalization, leading (worst case) to maintaining multiple parsers, for each target class of users. In this paper we present Fabric, a grammar formalism that supports: 1) the gradual extension with (and deprecation of) syntactic constructs in consecutive levels (“vertical”), and, orthogonally, 2) the internationalization of syntax by translating keywords and shuffling sentence order (“horizontal”). This is done in such a way that downstream language processors (compilers, interpreters, type checkers etc.) are affected as little as possible. We discuss the design of Fabric and its implementation on top of the LARK parser generator, and how Fabric can be embedded in the Rascal language workbench. A case study on the gradual programming language Hedy shows that language levels can be represented and internationalized concisely, with hardly any duplication. We evaluate the Fabric library using the Rebel2 DSL, by translating it to Dutch, and “untranslating” its concrete syntax trees, to reuse its existing compiler. Fabric thus provides a principled approach to gradual syntax definition in levels and locales.</p

    Building a needs-based curriculum in data science and artificial intelligence: case studies in Indonesia, Sri Lanka, and Thailand

    Get PDF
    Indonesia and Thailand are middle-income countries within the South-East Asia region. They have well-established and growing higher education systems, increasingly focused on quality improvement. However, they fall behind regional leaders in educating people who design, develop, deploy and train data science and artificial intelligence (DS&AI) based technology, as evident from the technological market, regionally dominated by Singapore and Malaysia, while the region as a whole is far behind China. A similar situation holds also for Sri Lanka, in the South Asia region technologically dominated by India. In this paper, we describe the design of a master's level curriculum in data science and artificial intelligence using European experience on building such curricula. The design of such a curriculum is a nontrivial exercise because there is a constant trade-off between having a sufficiently broad academic curriculum and adequately meeting regional needs, including those of industrial stakeholders. In fact, findings from a gap analysis and assessment of needs from three case studies in Indonesia, Sri Lanka, and Thailand comprise the most significant component of our curriculum development process.The authors would like to thank the European Union Erasmus+ programme which provided funding through the Capacity Building Higher Education project on Curriculum Development in Data Science and Artificial Intelligence, registered under the reference number 599600-EPP-1-2018-1-TH-EPPKA2-CBHE-JP

    Gradual Grammars: Syntax in Levels and Locales

    Get PDF
    Programming language implementations are often one-size-fits-all. Irrespective of the ethnographic background or proficiency of their users, they offer a single, canonical syntax for all language users. Whereas professional software developers might be willing to learn a programming language all in one go, this might be a significant barrier for non-technical users, such as children who learn to program, or domain experts using domain-specific languages (DSLs). Parser tools, however, do not offer sufficient support for graduality or internationalization, leading (worst case) to maintaining multiple parsers, for each target class of users. In this paper we present Fabric, a grammar formalism that supports: 1) the gradual extension with (and deprecation of) syntactic constructs in consecutive levels ("vertical"), and, orthogonally, 2) the internationalization of syntax by translating keywords and shuffling sentence order ("horizontal"). This is done in such a way that downstream language processors (compilers, interpreters, type checkers etc.) are affected as little as possible. We discuss the design of Fabric and its implementation on top of the LARK parser generator, and how Fabric can be embedded in the Rascal language workbench. A case study on the gradual programming language Hedy shows that language levels can be represented and internationalized concisely, with hardly any duplication. We evaluate the Fabric embedding using the Rebel2 DSL, by translating it to Dutch, and "untranslating" its concrete syntax trees, to reuse its existing compiler. Fabric thus provides a principled approach to gradual syntax definition in levels and locales.</p

    Grading 600+ students: A Case Study on Peer and Self Grading

    No full text
    Grading large classes has become a challenging and expensive task for many universities. The Delft University of Technology (TU Delft), located in the Netherlands, has observed a large increase in student numbers over the past few years. Given the large growth of the student population, grading all the submissions results in high costs. We made use of self and peer grading in the 2018-2019 edition of our software testing course. Students worked in teams of two, and self and peer graded three assignments in our course. We ended up with 906 self and peer graded submissions, which we compared to 248 submissions that were graded by our TAs. In this paper, we report on the differences we observed between self, peer, and TA grading. Our findings show that: (i) self grades tend to be 8-10% higher than peer grades on average, (ii) peer grades seem to be a good approximator of TA grades; in cases where self and peer grade differ significantly, the TA grade seems to lie in between, and (iii) the gender and the nationality of the student do not seem to affect self and peer grading.</p

    Grading 600+ students: A Case Study on Peer and Self Grading

    No full text
    Grading large classes has become a challenging and expensive task for many universities. The Delft University of Technology (TU Delft), located in the Netherlands, has observed a large increase in student numbers over the past few years. Given the large growth of the student population, grading all the submissions results in high costs. We made use of self and peer grading in the 2018-2019 edition of our software testing course. Students worked in teams of two, and self and peer graded three assignments in our course. We ended up with 906 self and peer graded submissions, which we compared to 248 submissions that were graded by our TAs. In this paper, we report on the differences we observed between self, peer, and TA grading. Our findings show that: (i) self grades tend to be 8-10% higher than peer grades on average, (ii) peer grades seem to be a good approximator of TA grades; in cases where self and peer grade differ significantly, the TA grade seems to lie in between, and (iii) the gender and the nationality of the student do not seem to affect self and peer grading.Accepted author manuscriptSoftware EngineeringComputer Science & Engineering-Teaching Tea

    10 Things Software Developers Should Learn about Learning

    No full text
    Understanding how human memory and learning works, the differences between beginners and experts, and practical steps developers can take to improve their learning, training, and recruitment

    Computerized adaptive assessment of understanding of programming concepts in primary school children

    No full text
    Background and Context Valid assessment of understanding of programming concepts in primary school children is essential to implement and improve programming education. Objective: We developed and validated the Computerized Adaptive Programming Concepts Test (CAPCT) with a novel application of Item Response Theory. The CAPCT is a web-based and resource-efficient adaptive assessment of 4489 questions measuring: the understanding of basic sequences, loops, conditions (if & if-else statements), debugging, multiple agents, procedures, and the ability to generalize to a new syntax. Method: Data was collected through an existing online adaptive practice and monitoring system called Math Garden. We collected 14 million responses from 93,341 Dutch children (ages 4 - 13). Findings: The CAPCT demonstrated good psychometric qualities because 75% of the variance in question difficulty was explained by differences in item characteristics. The CAPCT demonstrated robustness against adding new participants and adding new items. Differences in player ability (i.e., understanding of CS concepts) were due to differences in age, gender, the number of items played, and prior mathematical ability. Implications: The CAPCT may be used by teachers to identify the level of programming concept understanding of their pupils, while researchers may use the CAPCT to construct and validate effective teaching resources

    Computerized adaptive assessment of understanding of programming concepts in primary school children

    Get PDF
    Background and Context Valid assessment of understanding of programming concepts in primary school children is essential to implement and improve programming education. Objective: We developed and validated the Computerized Adaptive Programming Concepts Test (CAPCT) with a novel application of Item Response Theory. The CAPCT is a web-based and resource-efficient adaptive assessment of 4489 questions measuring: the understanding of basic sequences, loops, conditions (if & if-else statements), debugging, multiple agents, procedures, and the ability to generalize to a new syntax. Method: Data was collected through an existing online adaptive practice and monitoring system called Math Garden. We collected 14 million responses from 93,341 Dutch children (ages 4 - 13). Findings: The CAPCT demonstrated good psychometric qualities because 75% of the variance in question difficulty was explained by differences in item characteristics. The CAPCT demonstrated robustness against adding new participants and adding new items. Differences in player ability (i.e., understanding of CS concepts) were due to differences in age, gender, the number of items played, and prior mathematical ability. Implications: The CAPCT may be used by teachers to identify the level of programming concept understanding of their pupils, while researchers may use the CAPCT to construct and validate effective teaching resources
    corecore